PLC通过自由通讯口方式与变频器通讯
2007/12/13 10:04:00
摘要:本文主要介绍了使用西门子公司的S7-200 系列PLC的自由口模式与DANFOSS变频器进行通讯的实现方法,并给出了部分例子程序。
关健字:DANFOSS FC协议 RS-485 PLC 变频器
前言
在传统的变频控制系统中,变频器的启动/停止由PLC通过开关量输出控制,变频器频率是由PLC通过模拟量输出端口输出0~5(10)V或4~20mA信号控制的,这需要购买PLC比较昂贵的模拟量输出端口模块。变频器出现故障时由PLC读取变频器的故障报警触点,对具体故障原因并不清楚,需操作人员查询变频器报警信息后再阅读变频器说明书才知道,这在没有专业人员的情况下,对于一个普通的值班人员来说有一定的的难度。随着交流变频控制系统及通讯技术的发展,作者想到可以利用PLC及变频器的串行通讯的方式来实现PLC对变频器的控制。这样既节省了投资,又减少了设计、安装和维护的工作量。
一、变频器的选型
DANFOSS VLT系列变频调速器对串行通讯技术的支持是世界所公认的。它所支持的串行通讯技术包括标准RS-485 ,及包括PROFIDRIVE 、LONWORKS在内的各种现场总线方式。其中,RS-485通讯方式为用户提供了无需附加任何费用的、最为廉价实用的串行通讯方式。我们只需按照DANFOSS VLT变频器规定的通讯数据结构、控制字和状态字格式发送数据即可实现与VLT变频的通讯。VLT为用户提供了两种控制字和状态字格式标准:即DANFOSS标准的DANFOSS FC协议和PROFIBUS标准的PROFIDRIVE协议。其中FC协议为用户提供了更多的与VLT有关的控制信息和状态信息。在本例中我们选用DANFOSS FC协议。
二、PLC的选型
西门子工控产品在工控领域应用市场中有较高的占有率,S7-200系列PLC是西门子SIMATIC PLC家族中的成员之一,在西门子工控领域应用中占有重要地位。S7-200系列PLC体积小,软硬件功能强大,系统配置方便,由它组成的系统可以与许多种的现场总线相连接。它一推向市场就在各行各业得到了广泛应用。自由通讯口方式是S7-200 PLC的一个很有特色的功能,它使S7-200 PLC可以由用户自己定义通讯协议。利于自由通讯口方式,在本系统中PLC可以与变频器和方便连接。PLC通过自由通讯口方式与变频器通讯,控制变频器的运行,读取变频器自身的电压、电流、功率、频率和过压、过流、过负荷等全部报警信息等参数,这比通过外部端口控制变频器的运行具有较高的可靠性,节省了PLC宝贵的I/O端口,又获的了大量变频器的信息。在本例中,作者将按照DANFOSS FC协议来对S7-200的自由口进行编程。
三、VLT串行通讯简介
VLT变频器的串行通讯为异步半双工的方式,使用字节奇偶校验和块传送异或校验方法。每个变频器都配备有一个标准的RS-485通讯端口,使协议可以通过RS-485电气接口来进行传输。PLC为主机,变频器为从机,系统电码的传输由主机控制,主机不断发出某个地址的电码给从机,等待从机的响应。主机最多能带31个从机,在有中继器的情况下,可以增加到126个从机,也就是从机的地址最多可以设定到126。通讯时,每一个字节从一个起始位开始实行传送,然后再传递8个数据位,相应地组成一个字节,每个字节由一个奇偶校验位来验证传送的正确性,然后由一个终止位结束。这样一个字节共由11个位组成。
四、电码结构
每个电码由一个起始字节(STX)开始,这个起始字节为STX=02H。随后紧跟一个表示电码长度(LGE)的字节和表示变频器地址的字节(ADR)。然后是一些数据字节(随电码类型而变)。整个电码由一个数据控制字节(BCC)来结束。结构如下:
STX LGE ADR PKE IND PWE H PWE L PCD1 PCD2 BCC
02 0E 04 00 00 00 00 00 00 00 00 00 00 00 00 XX
在上述数据结构中:
1、 PKE占用两个字节,包括参数命令类型和参数数目;
2、 IND为索引,也占用两个字节,它与参数数目一起使用用于读写有索引的参数,此参数即为设置变频器的参数。索引字节用于表明它是一个读命令还是写命令。在读命令中必须具有0400H的格式,在写命令中必须具有0500H的格式。
3、 PWE为参数值块。占用四个字节,分为高字(PWE H)和低字(PWE L)。比如主机要改变当前的变频器参数,新的参数就应写在参数PWE中发送给变频器。
4、 PCD为过程块,占用4个字节。它有两种状态,当主机发给从机时,PCD1为控制字,PCD2为参考值;当从机发给主机时,PCD1为状态字,PCD2为当前的输出频率。
5、 BCC为数据控制字节。由它来对接收到的命令进行检验正确与否。它的初始值为0,然后对该字节以前的所有字节进行异或。
五、PLC编程示例
PLC与变频器之间采用主从方式进行通讯,PLC为主机,变频器为从机。1个网络中只有一台主机,主机通过站号区分不同的从机。它们采用半双工双向通讯,从机只有在收到主机的读写命令后才发送数据。 PLC控制软件编程上采用模块式结构,各种功能的程序模块通过主程序有机地结合起来,使系统运行稳定可靠。
1、PLC在第一次扫描时执行初始化子程序,对端口及RCV指令进行初始化。为了增加程序的可靠性,在初始化完成后,如果检测到端口空闲时则运行RCV指令使端口处于接受状态。初始化子程序如下:
Network 1 // 网络标题 检测端口空闲可编在主程序中
// 设定端口属性
LD SM0.0
MOVB 73, SMB30
Network 2
// 接收信息状态
LD SM0.0
MOVB 102, SMB87
Network 3
LD SM0.0
MOVB 16#02, SMB88
MOVB 50, SMB92
MOVB 50, SMB94
R SM87.2, 1
Network 4
LD SM0.0
ATCH INT1, 23 //连接口0接收完成的中断
Network 5
LD SM0.0
ATCH INT0, 9 //连接口0发送完成的中断
Network 6
LD SM0.0
ENI //中断允许
Network 7
LD SM0.0
MOVD &VB250, VD220 //装入地址指针
MOVB 0, VB242 //BCC码寄存器清零
MOVD &VB300, VD224 //装入地址指针
MOVB 0, VB246 //BCC码寄存器清零
2、当要改变当前变频状态的信息需传送时,调用“控制子程序”。首先它要禁止端口的接收,然后对控制电码进行编辑和BCC检验码计算,并发送;当没有改变当前变频状态的信息需传送时,调用“空命令”子程序。因为PLC如果要读取变频器的当前工作状态,就要给变频器发送命令,而“控制子程序”代码繁琐,执行效率不高,我们可以将“空命令”程序需传送的电码预先编排好(可以用短电码),在不需要改变变频器的时候调用此程序,这样可以大大提高执行效率。“控制子程序”程序代码如下:
Network 1
LD SM0.0 //停止端口0的接收
R SM87.7, 1
RCV VB300, 0
Network 2
LD L0.0
MOVW 16#047C, VW211
MOVW LW1, VW213
Network 3
LD L0.1
MOVW 16#0434, VW211
MOVW 0, VW213
Network 4
LD SM0.0
MOVW LW1, VW213
Network 5 // 网络标题
// 网络注释
LD SM0.0
MOVB 16#02, VB200
MOVB 16#0E, VB201
MOVB LB3, VB202
MOVD 0, VD203
MOVD 0, VD207
HTA VB200, VB250, 15
Network 6
LD SM0.0 //计算BCC校验码
FOR VW240, +1, +15
Network 7
LD SM0.0
XORB *VD220, VB242
Network 8
LD SM0.0
INCD VD220
Network 9
NEXT
Network 10
LD SM0.0
HTA VB242, VB265, 1 //BCC校验码写入发送缓冲区
Network 11
LDB= VB251, 16#0E //发送缓冲区准备好后进行发送
S S0.1, 1
Network 12
LSCR S0.1
Network 13
LD SM4.5
XMT VB250, 0
Network 14
SCRE
3、发送完成后执行发送完成中断程序,它的操作包括:允许RCV;bcc码寄存器清零;重新装入用于计算BCC校验码的地址指针;接收缓冲区中存放指令结束字符的字节清零,用来判断下一条指令格式是否正确。 4、接收完成后执行接收完成中断程序,它会将接收缓冲区中的十六进制ASCII码还原成数据并保存。然后调用“接收处理”子程序。它主要是求出接收缓冲区中指令的BCC校验码并与指令中的BCC校验码进行比对,并对电码中的数据进行处理。例如:电码中过程块的PCD1表示变频器的状态,PCD2表示变频器当前的输出频率。
总结:
使用此方法采用西门子PLC通过自由口使用 DANFOSS FC协议对DANFOSS变频器进行控制,极大地减少了线路连接的复杂性,避免了现场可能的各种电磁干扰对控制设备的影响。
参考文献:
1、西门子公司 SIMATIC S7-200系统手册 2002.10
2 、DANFOSS公司 VLT 2800操作说明
冯敬璞 男 1980年 毕业于山西工业职业技术学院 现从事自动控制方面的工作
河北省邯郸市和平路388号北院三楼
邯郸市工业自动化研究所 056000
电话:0310-3099710
邮箱:hdfjp@163.com
关健字:DANFOSS FC协议 RS-485 PLC 变频器
前言
在传统的变频控制系统中,变频器的启动/停止由PLC通过开关量输出控制,变频器频率是由PLC通过模拟量输出端口输出0~5(10)V或4~20mA信号控制的,这需要购买PLC比较昂贵的模拟量输出端口模块。变频器出现故障时由PLC读取变频器的故障报警触点,对具体故障原因并不清楚,需操作人员查询变频器报警信息后再阅读变频器说明书才知道,这在没有专业人员的情况下,对于一个普通的值班人员来说有一定的的难度。随着交流变频控制系统及通讯技术的发展,作者想到可以利用PLC及变频器的串行通讯的方式来实现PLC对变频器的控制。这样既节省了投资,又减少了设计、安装和维护的工作量。
一、变频器的选型
DANFOSS VLT系列变频调速器对串行通讯技术的支持是世界所公认的。它所支持的串行通讯技术包括标准RS-485 ,及包括PROFIDRIVE 、LONWORKS在内的各种现场总线方式。其中,RS-485通讯方式为用户提供了无需附加任何费用的、最为廉价实用的串行通讯方式。我们只需按照DANFOSS VLT变频器规定的通讯数据结构、控制字和状态字格式发送数据即可实现与VLT变频的通讯。VLT为用户提供了两种控制字和状态字格式标准:即DANFOSS标准的DANFOSS FC协议和PROFIBUS标准的PROFIDRIVE协议。其中FC协议为用户提供了更多的与VLT有关的控制信息和状态信息。在本例中我们选用DANFOSS FC协议。
二、PLC的选型
西门子工控产品在工控领域应用市场中有较高的占有率,S7-200系列PLC是西门子SIMATIC PLC家族中的成员之一,在西门子工控领域应用中占有重要地位。S7-200系列PLC体积小,软硬件功能强大,系统配置方便,由它组成的系统可以与许多种的现场总线相连接。它一推向市场就在各行各业得到了广泛应用。自由通讯口方式是S7-200 PLC的一个很有特色的功能,它使S7-200 PLC可以由用户自己定义通讯协议。利于自由通讯口方式,在本系统中PLC可以与变频器和方便连接。PLC通过自由通讯口方式与变频器通讯,控制变频器的运行,读取变频器自身的电压、电流、功率、频率和过压、过流、过负荷等全部报警信息等参数,这比通过外部端口控制变频器的运行具有较高的可靠性,节省了PLC宝贵的I/O端口,又获的了大量变频器的信息。在本例中,作者将按照DANFOSS FC协议来对S7-200的自由口进行编程。
三、VLT串行通讯简介
VLT变频器的串行通讯为异步半双工的方式,使用字节奇偶校验和块传送异或校验方法。每个变频器都配备有一个标准的RS-485通讯端口,使协议可以通过RS-485电气接口来进行传输。PLC为主机,变频器为从机,系统电码的传输由主机控制,主机不断发出某个地址的电码给从机,等待从机的响应。主机最多能带31个从机,在有中继器的情况下,可以增加到126个从机,也就是从机的地址最多可以设定到126。通讯时,每一个字节从一个起始位开始实行传送,然后再传递8个数据位,相应地组成一个字节,每个字节由一个奇偶校验位来验证传送的正确性,然后由一个终止位结束。这样一个字节共由11个位组成。
四、电码结构
每个电码由一个起始字节(STX)开始,这个起始字节为STX=02H。随后紧跟一个表示电码长度(LGE)的字节和表示变频器地址的字节(ADR)。然后是一些数据字节(随电码类型而变)。整个电码由一个数据控制字节(BCC)来结束。结构如下:
STX LGE ADR PKE IND PWE H PWE L PCD1 PCD2 BCC
02 0E 04 00 00 00 00 00 00 00 00 00 00 00 00 XX
在上述数据结构中:
1、 PKE占用两个字节,包括参数命令类型和参数数目;
2、 IND为索引,也占用两个字节,它与参数数目一起使用用于读写有索引的参数,此参数即为设置变频器的参数。索引字节用于表明它是一个读命令还是写命令。在读命令中必须具有0400H的格式,在写命令中必须具有0500H的格式。
3、 PWE为参数值块。占用四个字节,分为高字(PWE H)和低字(PWE L)。比如主机要改变当前的变频器参数,新的参数就应写在参数PWE中发送给变频器。
4、 PCD为过程块,占用4个字节。它有两种状态,当主机发给从机时,PCD1为控制字,PCD2为参考值;当从机发给主机时,PCD1为状态字,PCD2为当前的输出频率。
5、 BCC为数据控制字节。由它来对接收到的命令进行检验正确与否。它的初始值为0,然后对该字节以前的所有字节进行异或。
五、PLC编程示例
PLC与变频器之间采用主从方式进行通讯,PLC为主机,变频器为从机。1个网络中只有一台主机,主机通过站号区分不同的从机。它们采用半双工双向通讯,从机只有在收到主机的读写命令后才发送数据。 PLC控制软件编程上采用模块式结构,各种功能的程序模块通过主程序有机地结合起来,使系统运行稳定可靠。
1、PLC在第一次扫描时执行初始化子程序,对端口及RCV指令进行初始化。为了增加程序的可靠性,在初始化完成后,如果检测到端口空闲时则运行RCV指令使端口处于接受状态。初始化子程序如下:
Network 1 // 网络标题 检测端口空闲可编在主程序中
// 设定端口属性
LD SM0.0
MOVB 73, SMB30
Network 2
// 接收信息状态
LD SM0.0
MOVB 102, SMB87
Network 3
LD SM0.0
MOVB 16#02, SMB88
MOVB 50, SMB92
MOVB 50, SMB94
R SM87.2, 1
Network 4
LD SM0.0
ATCH INT1, 23 //连接口0接收完成的中断
Network 5
LD SM0.0
ATCH INT0, 9 //连接口0发送完成的中断
Network 6
LD SM0.0
ENI //中断允许
Network 7
LD SM0.0
MOVD &VB250, VD220 //装入地址指针
MOVB 0, VB242 //BCC码寄存器清零
MOVD &VB300, VD224 //装入地址指针
MOVB 0, VB246 //BCC码寄存器清零
2、当要改变当前变频状态的信息需传送时,调用“控制子程序”。首先它要禁止端口的接收,然后对控制电码进行编辑和BCC检验码计算,并发送;当没有改变当前变频状态的信息需传送时,调用“空命令”子程序。因为PLC如果要读取变频器的当前工作状态,就要给变频器发送命令,而“控制子程序”代码繁琐,执行效率不高,我们可以将“空命令”程序需传送的电码预先编排好(可以用短电码),在不需要改变变频器的时候调用此程序,这样可以大大提高执行效率。“控制子程序”程序代码如下:
Network 1
LD SM0.0 //停止端口0的接收
R SM87.7, 1
RCV VB300, 0
Network 2
LD L0.0
MOVW 16#047C, VW211
MOVW LW1, VW213
Network 3
LD L0.1
MOVW 16#0434, VW211
MOVW 0, VW213
Network 4
LD SM0.0
MOVW LW1, VW213
Network 5 // 网络标题
// 网络注释
LD SM0.0
MOVB 16#02, VB200
MOVB 16#0E, VB201
MOVB LB3, VB202
MOVD 0, VD203
MOVD 0, VD207
HTA VB200, VB250, 15
Network 6
LD SM0.0 //计算BCC校验码
FOR VW240, +1, +15
Network 7
LD SM0.0
XORB *VD220, VB242
Network 8
LD SM0.0
INCD VD220
Network 9
NEXT
Network 10
LD SM0.0
HTA VB242, VB265, 1 //BCC校验码写入发送缓冲区
Network 11
LDB= VB251, 16#0E //发送缓冲区准备好后进行发送
S S0.1, 1
Network 12
LSCR S0.1
Network 13
LD SM4.5
XMT VB250, 0
Network 14
SCRE
3、发送完成后执行发送完成中断程序,它的操作包括:允许RCV;bcc码寄存器清零;重新装入用于计算BCC校验码的地址指针;接收缓冲区中存放指令结束字符的字节清零,用来判断下一条指令格式是否正确。 4、接收完成后执行接收完成中断程序,它会将接收缓冲区中的十六进制ASCII码还原成数据并保存。然后调用“接收处理”子程序。它主要是求出接收缓冲区中指令的BCC校验码并与指令中的BCC校验码进行比对,并对电码中的数据进行处理。例如:电码中过程块的PCD1表示变频器的状态,PCD2表示变频器当前的输出频率。
总结:
使用此方法采用西门子PLC通过自由口使用 DANFOSS FC协议对DANFOSS变频器进行控制,极大地减少了线路连接的复杂性,避免了现场可能的各种电磁干扰对控制设备的影响。
参考文献:
1、西门子公司 SIMATIC S7-200系统手册 2002.10
2 、DANFOSS公司 VLT 2800操作说明
冯敬璞 男 1980年 毕业于山西工业职业技术学院 现从事自动控制方面的工作
河北省邯郸市和平路388号北院三楼
邯郸市工业自动化研究所 056000
电话:0310-3099710
邮箱:hdfjp@163.com
提交
查看更多评论
其他资讯
FANUC机器人教材
机器人控制技术
ifix4.0中文版发布讲座
iFIX视频培训-驱动配置等
iFIX视频培训-标签组和层